home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Disc to the Future 2
/
Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin
/
MAC
/
THINKC
/
4_0
/
NEWTEXTF
/
NEWTEXTF.C
Wrap
C/C++ Source or Header
|
1991-01-09
|
2KB
|
74 lines
#include "HyperCard.h"
pascal int FSDelete (Str255, int);
pascal int Create (Str255, int, OSType, OSType);
void FileErr (XCmdBlockPtr paramPtr, int err);
/* XCMD, newTextFile, id 20006, attr 20, custom header */
pascal void main (XCmdBlockPtr paramPtr)
{Str255 fname;
OSType theCreator;
int err;
if (paramPtr->paramCount != 2)
{HyperError (paramPtr, "newTextFile needs 2 params.");
return;}
HandleToStr255 (paramPtr->params [0], fname);
if (!(*fname))
{FileErr (paramPtr, -37);
return;}
theCreator = (OSType) HandleToResType (paramPtr->params [1]);
if (theCreator == ' ')
{HyperError (paramPtr, "Bad file creator.");
return;}
err = FSDelete (fname, 0);
if (err && err != -43)
{FileErr (paramPtr, err);
return;}
if (err = Create (fname, 0, theCreator, 'TEXT'))
FileErr (paramPtr, err);
return;}
void FileErr (XCmdBlockPtr paramPtr, int err)
{SendHCMessage (paramPtr, "beep");
switch (err)
{case -120:
paramPtr->returnValue = CToNewHandle ("Folder not found.");
break;
case -58:
paramPtr->returnValue = CToNewHandle ("External file system.");
break;
case -47:
paramPtr->returnValue = CToNewHandle ("File busy.");
break;
case -46:
paramPtr->returnValue = CToNewHandle ("Software volume lock.");
break;
case -45:
paramPtr->returnValue = CToNewHandle ("File locked.");
break;
case -44:
paramPtr->returnValue = CToNewHandle ("Hardware volume lock.");
break;
case -37:
paramPtr->returnValue = CToNewHandle ("Bad file name.");
break;
case -36:
paramPtr->returnValue = CToNewHandle ("I/O error.");
break;
case -35:
paramPtr->returnValue = CToNewHandle ("No such volume.");
break;
case -34:
paramPtr->returnValue = CToNewHandle ("Disk full.");
break;
case -33:
paramPtr->returnValue = CToNewHandle ("Folder full.");
break;
default:
paramPtr->returnValue = CToNewHandle ("System error.");}
return;}